YES 2.0420000000000003
H-Termination proof of /home/matraf/haskell/eval_FullyBlown_Fast/empty.hs
H-Termination of the given Haskell-Program with start terms could successfully be proven:
↳ HASKELL
↳ BR
mainModule Main
| ((intToDigit :: Int -> Char) :: Int -> Char) |
module Main where
Replaced joker patterns by fresh variables and removed binding patterns.
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
mainModule Main
| ((intToDigit :: Int -> Char) :: Int -> Char) |
module Main where
Cond Reductions:
The following Function with conditions
is transformed to
undefined0 | True | = undefined |
undefined1 | | = undefined0 False |
The following Function with conditions
intToDigit | i |
| | i >= 0 && i <= 9 |
= | toEnum (fromEnum '0' + i) |
|
| | i >= 10 && i <= 15 |
= | toEnum (fromEnum 'a' + i - 10) |
|
| | otherwise | |
|
is transformed to
intToDigit | i | = intToDigit3 i |
intToDigit1 | i True | = toEnum (fromEnum 'a' + i - 10) |
intToDigit1 | i False | = intToDigit0 i otherwise |
intToDigit0 | i True | = error [] |
intToDigit2 | i True | = toEnum (fromEnum '0' + i) |
intToDigit2 | i False | = intToDigit1 i (i >= 10 && i <= 15) |
intToDigit3 | i | = intToDigit2 i (i >= 0 && i <= 9) |
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ NumRed
mainModule Main
| ((intToDigit :: Int -> Char) :: Int -> Char) |
module Main where
Num Reduction: All numbers are transformed to thier corresponding representation with Pos, Neg, Succ and Zero.
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
mainModule Main
| (intToDigit :: Int -> Char) |
module Main where
Haskell To QDPs
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
Q DP problem:
The TRS P consists of the following rules:
new_primPlusNat(Succ(vx540), Succ(vx550)) → new_primPlusNat(vx540, vx550)
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs:
- new_primPlusNat(Succ(vx540), Succ(vx550)) → new_primPlusNat(vx540, vx550)
The graph contains the following edges 1 > 1, 2 > 2
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
Q DP problem:
The TRS P consists of the following rules:
new_primIntToChar(Succ(vx13100), Succ(vx1300)) → new_primIntToChar(vx13100, vx1300)
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs:
- new_primIntToChar(Succ(vx13100), Succ(vx1300)) → new_primIntToChar(vx13100, vx1300)
The graph contains the following edges 1 > 1, 2 > 2
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
Q DP problem:
The TRS P consists of the following rules:
new_intToDigit1(vx114, Succ(vx1150), Succ(vx1160)) → new_intToDigit1(vx114, vx1150, vx1160)
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs:
- new_intToDigit1(vx114, Succ(vx1150), Succ(vx1160)) → new_intToDigit1(vx114, vx1150, vx1160)
The graph contains the following edges 1 >= 1, 2 > 2, 3 > 3
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
Q DP problem:
The TRS P consists of the following rules:
new_intToDigit10(vx57, Succ(vx580), Succ(vx590), vx60) → new_intToDigit10(vx57, vx580, vx590, vx60)
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs:
- new_intToDigit10(vx57, Succ(vx580), Succ(vx590), vx60) → new_intToDigit10(vx57, vx580, vx590, vx60)
The graph contains the following edges 1 >= 1, 2 > 2, 3 > 3, 4 >= 4
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ NumRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDPSizeChangeProof
Q DP problem:
The TRS P consists of the following rules:
new_intToDigit2(vx40, Succ(vx410), Succ(vx420)) → new_intToDigit2(vx40, vx410, vx420)
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs:
- new_intToDigit2(vx40, Succ(vx410), Succ(vx420)) → new_intToDigit2(vx40, vx410, vx420)
The graph contains the following edges 1 >= 1, 2 > 2, 3 > 3